package com.ys.nms.module.business.controller.admin.linksManual.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.VO;
import com.ys.nms.module.business.dal.dataobject.devices.DevicesDO;
import com.ys.nms.module.business.dal.dataobject.ports.PortsDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 线路-手动 Response VO")
@Data
@ExcelIgnoreUnannotated
public class LinksManualRespVO implements VO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27665")
    @ExcelProperty("ID")
    private Integer id;

    @Schema(description = "本地端口", example = "12539")
    @ExcelProperty("本地端口")
    @Trans(type = TransType.SIMPLE, target = PortsDO.class, fields = { "ifName", }, refs = { "localPortName" })
    private Integer localPortId;

    private String localPortName;

    @Schema(description = "本地设备 ID，", example = "23191")
    @ExcelProperty("本地设备 ID，")
    @Trans(type = TransType.SIMPLE, target = DevicesDO.class, fields = { "hostname","icon" }, refs = { "localDeviceName" ,"localIcon"})
    private Integer localDeviceId;

    private String localDeviceName;

    private String localIcon;

    private String name;

    @Schema(description = "远端端口 ID", example = "19622")
    @ExcelProperty("远端端口 ID")
    @Trans(type = TransType.SIMPLE, target = PortsDO.class, fields = { "ifName"}, refs = { "remotePortName"})
    private Integer remotePortId;

    private String remotePortName;

    private String remoteIcon;

    @Schema(description = "路是否激活（1=启用，0=禁用）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("路是否激活（1=启用，0=禁用）")
    private Integer active;

    @Schema(description = "协议类型")
    @ExcelProperty("协议类型")
    private String protocol;

    @Schema(description = "远端设备主机名", example = "李四")
    @ExcelProperty("远端设备主机名")
    private String remoteHostname;

    @Schema(description = "远端设备在 LibreNMS 中的 ID", example = "14324")
    @ExcelProperty("远端设备在 LibreNMS 中的 ID")
    @Trans(type = TransType.SIMPLE, target = DevicesDO.class, fields = { "hostname", }, refs = { "remoteDeviceName" })
    private Integer remoteDeviceId;

    private String remoteDeviceName;

    @Schema(description = "远端物理端口名称")
    @ExcelProperty("远端物理端口名称")
    private String remotePort;

    @Schema(description = "远端设备平台信息")
    @ExcelProperty("远端设备平台信息")
    private String remotePlatform;

    @Schema(description = "远端设备系统版本")
    @ExcelProperty("远端设备系统版本")
    private String remoteVersion;

    @Schema(description = "是否手动默认0自动1手动")
    @ExcelProperty("是否手动默认0自动1手动")
    private String manual;

    @Schema(description = "是否是关联链路0否1是")
    @ExcelProperty("是否是关联链路0否1是")
    private Integer isCritical;

    @Schema(description = "名称", example = "赵六")
    @ExcelProperty("名称")
    private String sysname;

    @Schema(description = "画板id", example = "23942")
    @ExcelProperty("画板id")
    private Integer boardId;

    @Schema(description = "警戒线")
    @ExcelProperty("警戒线")
    private Integer warningLine;

    private DevicesDO devices;

}
